-
Notifications
You must be signed in to change notification settings - Fork 145
Feature: Add planewave parallization support for BPCG method #5849
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Add planewave parallization support for BPCG method #5849
Conversation
|
Currently, BPCG converges under MPI multi-core conditions, but there is a slight difference in precision compared to single-core, which requires further investigation. Integrate test |
|
Tests show that eigenvalues diverge at the very first round of iter:
DONE(0.387236 SEC) : INIT SCF
eigenvalue[0] = -1.59241
eigenvalue[1] = -1.59117
eigenvalue[2] = -1.58078
eigenvalue[3] = -1.57916
eigenvalue[4] = -1.57533
eigenvalue[5] = -0.337989
eigenvalue[6] = -0.202191
eigenvalue[7] = -0.196922
eigenvalue[8] = -0.172316
eigenvalue[9] = -0.166048
eigenvalue[10] = -0.157684
eigenvalue[11] = 0.560756
eigenvalue[12] = 0.619775
eigenvalue[13] = 0.673029
eigenvalue[14] = 0.684267
eigenvalue[15] = 0.967494
eigenvalue[16] = 0.988857
eigenvalue[17] = 1.02778
eigenvalue[18] = 1.19561
eigenvalue[19] = 1.449
eigenvalue[20] = 1.48429
eigenvalue[21] = 1.48959
eigenvalue[22] = 1.55905
eigenvalue[23] = 1.57068
DONE(0.385729 SEC) : INIT SCF
eigenvalue[0] = -1.5924
eigenvalue[1] = -1.59117
eigenvalue[2] = -1.58079
eigenvalue[3] = -1.57916
eigenvalue[4] = -1.57533
eigenvalue[5] = -0.337989
eigenvalue[6] = -0.202191
eigenvalue[7] = -0.196922
eigenvalue[8] = -0.172316
eigenvalue[9] = -0.166048
eigenvalue[10] = -0.157684
eigenvalue[11] = 0.560756
eigenvalue[12] = 0.619775
eigenvalue[13] = 0.673029
eigenvalue[14] = 0.684267
eigenvalue[15] = 0.96749
eigenvalue[16] = 0.988901
eigenvalue[17] = 1.02778
eigenvalue[18] = 1.19561
eigenvalue[19] = 1.44897
eigenvalue[20] = 1.48398
eigenvalue[21] = 1.49106
eigenvalue[22] = 1.55956
eigenvalue[23] = 1.5701and errors accumulate as the iter goes. |
|
The bug stems from the |
Qianruipku
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please also change "mpirun -np 1" to "mpirun -np 4" in Autotest.sh and update results.ref?
|
Output of 1: [ RUN ] 102_PW_BPCG
1: [ OK ] etotref
1: [ OK ] etotperatomref
1: [WARNING ] totalforceref cal=5.19522000 ref=5.19483000 deviation=-0.00039000
1: [WARNING ] totalstressref cal=37241.49490600 ref=37241.45334600 deviation=-0.04156000
1: [ OK ] pointgroupref
1: [ OK ] spacegroupref
1: [ OK ] nksibzrefUpdate reference value in |
…eling#5849) * Subsitute gemm for einsum in rotate_wf * Add planewave parallel support for inner-produce like gemm_op in bpcg * Add reduce for dot ops used in bpcg * Add reduce for manual inner product(for loop) ops used in bpcg * Update docs now that BPCG supports plane wave parallelization. * Update Autotest.sh to run BPCG test with MPI np=4 * remove unused code and redundancies * Update result.ref for BPCG multicore test
Linked Issue
Fix #3437
What's changed?